package com.tian.mybatis.executor;

import com.tian.mybatis.config.Configuration;
import com.tian.mybatis.config.MapperStatement;

import java.beans.IntrospectionException;
import java.lang.reflect.InvocationTargetException;
import java.sql.SQLException;
import java.util.List;

/**
 * @author tianwc 公众号：java后端技术全栈、面试专栏
 * @version 1.0.0
 * @date 2023年09月21日 16:52
 * 在线刷题 1200+题和1000+篇干货文章：<a href="https://woaijava.cc/">博客地址</a>
 * <p>
 * SQL语句执行器
 */
public interface Executor {
    /**
     * SQL执行器
     *
     * @param configuration
     * @param mapperStatement
     * @param params
     * @param <E>
     * @return
     */
    <E> List<E> doQuery(Configuration configuration, MapperStatement mapperStatement, Object... params) throws Exception;
    <E> E doUpdate(Configuration configuration, MapperStatement mapperStatement, Object... params) throws Exception;
}
